package br.gov.mi.corporativo.dominio.boundary.comum.pessoafisica;

import java.util.Date;
import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

import br.gov.mi.corporativo.dominio.entidade.comum.PessoaFisica;

@WebService
public interface PessoaFisicaEndPoint {
	
	@WebMethod(operationName = "recuperarTodasPessoasFisica")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarTodos();
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorIdPessoaFisica")
	public @WebResult(name="pessoaFisica")PessoaFisica recuperarPorIdPessoaFisica(
		   @WebParam(name="idPessoaFisica") Long idPessoaFisica);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorUf")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorUf(
		   @WebParam(name="uf") Long uf);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorPais")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorPais(
		   @WebParam(name="pais") Long pais);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorTratamento")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorTratamento(
		   @WebParam(name="tratamento") Long tratamento);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorPessoa")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorPessoa(
		   @WebParam(name="pessoa") Long pessoa);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorProfissao")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorProfissao(
		   @WebParam(name="profissao") Long profissao);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorMunicipio")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorMunicipio(
		   @WebParam(name="municipio") Long municipio);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorNmPessoaFisica")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorNmPessoaFisica(
		   @WebParam(name="nmPessoaFisica") String nmPessoaFisica);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorDtNascimento")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorDtNascimento(
		   @WebParam(name="dtNascimento") Date dtNascimento);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorStSexo")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorStSexo(
		   @WebParam(name="stSexo") String stSexo);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorCsGrupoSanguineo")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorCsGrupoSanguineo(
		   @WebParam(name="csGrupoSanguineo") String csGrupoSanguineo);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorCsFatorRh")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorCsFatorRh(
		   @WebParam(name="csFatorRh") String csFatorRh);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorCsCor")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorCsCor(
		   @WebParam(name="csCor") String csCor);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorCsEstadoCivil")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorCsEstadoCivil(
		   @WebParam(name="csEstadoCivil") String csEstadoCivil);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorNmPai")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorNmPai(
		   @WebParam(name="nmPai") String nmPai);
	
	@WebMethod(operationName = "recuperarPessoaFisicaPorNmMae")
	public @WebResult(name="listaPessoaFisica")List<PessoaFisica> recuperarPorNmMae(
		   @WebParam(name="nmMae") String nmMae);
	
	@WebMethod(operationName="recuperarPessoaFisicaPorLogin")
	public @WebResult(name="pessoaFisica")PessoaFisica recuperarPorLogin(@WebParam(name="login") String login);
	
}
